package com.joker.product.service;

import com.joker.product.domain.Merchant;
import com.joker.product.domain.PmsSkuInfo;
import com.joker.product.domain.vo.SkuWarningVO;
import com.joker.product.query.PmsSkuQuery;

import java.util.List;

/**
 * sku信息Service接口
 *
 * @author jorker
 * @date 2024-12-24
 */
public interface IPmsSkuInfoService
{

    /**
     * 通过sku查询属性
     * @param skuId skuId
     * @return 属性集合
     */
    List<String> selectValueBySkuId(Long skuId);
    /**
     * 查询sku信息
     *
     * @param skuId sku信息主键
     * @return sku信息
     */
    public PmsSkuInfo selectPmsSkuInfoBySkuId(Long skuId);

    /**
     * 查询sku信息列表
     *
     * @param pmsSkuInfo sku信息
     * @return sku信息集合
     */
    public List<PmsSkuInfo> selectPmsSkuInfoList(PmsSkuInfo pmsSkuInfo);

    /**
     * 新增sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int insertPmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 修改sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int updatePmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 批量删除sku信息
     *
     * @param skuIds 需要删除的sku信息主键集合
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuIds(Long[] skuIds);

    /**
     * 删除sku信息信息
     *
     * @param skuId sku信息主键
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuId(Long skuId);

    /**
     * 通过id查询商家信息
     * @param skuId
     * @return
     */
    Merchant selectMerchantBySkuId(Long skuId);

    /**
     * 查询库存值低于
     * @param query
     * @return
     */
    List<SkuWarningVO> getWarningList(PmsSkuQuery query);

    /**
     * 查询所有商品库存
     */
    List<PmsSkuInfo> selectSkuInfoInventory();

}
